/*
 * 项目名称:    wms-server-jeecg
 * 创建人员:    hansen
 * 创建时间:    2023-10-09
 */
package org.jeecg.modules.dock.entity.mds.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * WMS-MDS发送横剪入库请求
 *
 * @author hansen
 * @version 1.0.0
 * @date 2023-10-09 13:50:22
 */
@ApiModel(value = "WMS-MDS发送横剪入库请求", description = "WMS-MDS发送横剪入库请求")
@Data
@EqualsAndHashCode(callSuper = true)
public class MDSCrossCutIntoStorageRequestVO extends MdsBaseRequestVO{

    @NotNull(message = "产线名称不能为空")
    @NotBlank(message = "产线名称不能为空")
    @ApiModelProperty("产线名称")
    private String lineName;

    @NotNull(message = "是否全序列不能为空")
    @ApiModelProperty("是否全序列，1-是，2-否")
    private Integer sequence;

    @NotNull(message = "生产订单号不能为空")
    @NotBlank(message = "生产订单号不能为空")
    @ApiModelProperty("生产订单号")
    private String orderCode;

    @ApiModelProperty("合并的主任务，选任务号")
    private String mergeTask;

    @ApiModelProperty("合并的产线")
    private String mergeLinecode;

    @NotNull(message = "明细不能为空")
    @ApiModelProperty("明细")
    private List<Detail> detail;

    @Data
    static class Detail implements Serializable {

        @NotNull(message = "柱子批次号不能为空")
        @NotBlank(message = "柱子批次号不能为空")
        @ApiModelProperty("柱子批次号，长度10位")
        private String batchId;

        @NotNull(message = "位置编号不能为空")
        @NotBlank(message = "位置编号不能为空")
        @ApiModelProperty("位置，位置编号")
        private String position;

        @NotNull(message = "柱型不能为空")
        @NotBlank(message = "柱型不能为空")
        @ApiModelProperty("柱型(如“上轭AA”)")
        private String modelName;

        @NotNull(message = "理料方向不能为空")
        @ApiModelProperty("理料方向，1-正  ，2-反")
        private Integer direction;

        @NotNull(message = "台号不能为空")
        @NotBlank(message = "台号不能为空")
        @ApiModelProperty("台号，相同台号组成一台")
        private String tableCode;

    }
}
